﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.Objects.DataClasses;
using System.Linq;
using System.Web.Mvc;
using BLL;
using WEB.Models;

namespace WEB.Controllers
{
    public class ProdutoController : Controller
    {
        
        IEnumerable<SelectListItem> tp = new Tipo().ListarTipos().Select(x => new SelectListItem { Text = x.txtTipo, Value = x.idTipo.ToString() });

        //
        // GET: /Objeto/
        public ActionResult Index()
        {
            return View();
        }

        //
        // GET: /Produto/Details/5

        public ActionResult Detalhes(int? id = null)
        {
            try
            {
                if (Validacao.IsInteger(id.ToString()))
                {
                    var p = new Produdo();

                    @ViewBag.Title = "Produto não localizado.";
                }else
                {
                    @ViewBag.Title = "----------";
                }
                    
                return View();
            }
            catch (Exception)
            {
                
                throw;
            }
            
        }

        //
        // GET: /Objeto/Create

        public ActionResult Novo()
        {

            ViewData["Tipo"] = tp;
            return View();
        } 

        //
        // POST: /Objeto/Create

        [HttpPost]
        public ActionResult Novo(ProdutoModel objm)
        {
            try
            {
                Produdo o = new Produdo();

                
                tbObjeto ob = new tbObjeto()
                                     {
                                         idTipo = objm.idTipo,
                                         idUsuario =  1,
                                         txtDescricao = objm.Descricao,
                                         dblPreco =  Convert.ToDecimal(objm.Preco),
                                         dtInclusao = DateTime.Now
                                     };

                if ((objm.flArqImagem != null) && (objm.flArqImagem.ContentLength > 0))
                {
                    ob.tbFoto = new EntityCollection<tbFoto>()
                        {
                            new tbFoto()
                            
                        };
                }

                
                //HttpPostedFile file = imgUpload.PostedFile;

                byte[] imgByte = new Byte[objm.flArqImagem.ContentLength];

                objm.flArqImagem.InputStream.Read(imgByte, 0, objm.flArqImagem.ContentLength);

                

                ob = o.InserirAtualizar(ob);
                //tbFoto fotos = (IEnumerable<tbFoto>)ob.tbFoto.Take(1);

                
                //item.
                    //var cf = new ClasseFoto(80, 70, 80)
                    //{
                    //    item.
                    //    ft =  IEnumerable<tbFoto> )ob.tbFoto.First();
                    //    pf = new TbProdutoFoto() { TbProduto = tp, tmn = 1 }
                    //};

                    //cf._getImagem(imgByte);
                    //cf._strPathImg = strPath;
                    //cf._dir(Server.MapPath("."));

                    //te.AddToTbProdutoFoto(cf.pf);
                    //te.SaveChanges();
                    //cf.Salvar();

                    //var cf1 = new ClasseFoto(170, 150, 80) { pf = new TbProdutoFoto() { TbProduto = tp, tmn = 2 } };

                    //cf1._getImagem(imgByte);
                    //cf1._strPathImg = strPath;


                    //te.AddToTbProdutoFoto(cf1.pf);
                    //te.SaveChanges();
                    //cf1.Salvar();

                    //var cf2 = new ClasseFoto(250, 230, 80) { pf = new TbProdutoFoto() { TbProduto = tp, tmn = 3 } };
                    //cf2._getImagem(imgByte);
                    //cf2._strPathImg = strPath;

                    //te.AddToTbProdutoFoto(cf2.pf);
                    //te.SaveChanges();

                    //cf2.Salvar();
                

                o.Salvar();

                foreach (var item in ob.tbFoto)
                {
                    var cf = new ClasseFoto(150, 164, 80)
                    {
                        idFoto = item.idFoto,
                        idObjeto = item.idObjeto,
                        intTnn = 1

                    };
                    cf._getImagem(imgByte);
                    cf._dir(HttpContext.Server.MapPath("~/"));
                    cf.Salvar();
                }
                
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return RedirectToAction("Novo"); ;
            }
        }
        
        //
        // GET: /Objeto/Edit/5
 
        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /Objeto/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Objeto/Delete/5
 
        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /Objeto/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
